/**
 * 
 */
package uy.com.pzit.fpmundialmodel.manager;

import java.util.Date;

import uy.com.pzit.fpmundialmodel.dao.CompetenciaDAO;
import uy.com.pzit.fpmundialmodel.domain.Competencia;
import uy.com.pzit.fpmundialmodel.domain.Encuentro;
import uy.com.pzit.fpmundialmodel.response.EncuentroResponse;

/**
 * @author pferraz
 * 
 */
public class CompetenciaManager {
	
	

	private CompetenciaDAO competenciaDAO;

	public void manageCompetencia(Encuentro encuentro, int idCompetencia,EncuentroResponse resp) {
		Competencia competencia = getCompetenciaById(idCompetencia);
		competencia.getEncuentros().add(encuentro);
		/* Chequeo cada partido si es el ultimo de su competencia */
		if (competenciaTerminada(competencia)) {
			competencia.setFechaFin(new Date());
			resp.setCompetenciaCompletada(competencia.getFechaFin());
			
		}

		competenciaDAO.updateCompetencia(competencia);

	}

	private boolean competenciaTerminada(Competencia competencia) {
		final int paisesEnCompetencia=competencia.getPaises().size();
		final int cantidadPartidosPorCompetencia = (paisesEnCompetencia-1)*paisesEnCompetencia/2;
		
		return competencia.getEncuentros().size()==cantidadPartidosPorCompetencia;
		
	}

	/**
	 * @param competenciaDAO
	 *            the competenciaDAO to set
	 */
	public void setCompetenciaDAO(CompetenciaDAO competenciaDAO) {
		this.competenciaDAO = competenciaDAO;
	}

	public Competencia getCompetenciaById(int idCompetencia) {
		// TODO Auto-generated method stub
		return competenciaDAO.getCompetenciaById(idCompetencia);
	}

}
